package com.zatech.cgnci.project.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 类 CgnciRateDTO 的实现描述：汇率信息DTO
 * </p>
 *
 * @author za-xiaojingjie
 * @version 2025/1/13 10:36
 * @since 2025/1/13 10:36
 */
@Data
@ApiModel(description = "汇率信息DTO")
public class CgnciRateDTO {
    
    @ApiModelProperty("汇率信息ID")
    private Long id;
    
    @ApiModelProperty("直接汇率")
    @NotNull(message = "directRate cannot be null")
    private BigDecimal directRate;

    @ApiModelProperty("间接汇率")
    @NotNull(message = "indirectRate cannot be null")
    private BigDecimal indirectRate;

    @ApiModelProperty("汇率类型")
    @NotBlank(message = "rateType cannot be null")
    private String rateType;

    @ApiModelProperty("原币")
    @NotBlank(message = "baseCurrency cannot be null")
    private String baseCurrency;

    @ApiModelProperty("目标币")
    @NotBlank(message = "targetCurrency cannot be null")
    private String targetCurrency;

    @ApiModelProperty("生效日期 (yyyy-MM-dd HH:mm:ss)")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "effectiveDate cannot be null")
    private Date effectiveDate;

    @ApiModelProperty("失效日期 (yyyy-MM-dd HH:mm:ss)")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @NotNull(message = "expirationDate cannot be null")
    private Date expirationDate;

    @ApiModelProperty("禁用状态（0-否，1-禁用）")
    @NotNull(message = "disabledStatus cannot be null")
    private Integer disabledStatus;
    
}
